📌 像小孩繼承父母的特徵
#include <iostream>
using namespace std;
class Character
{
public:
string name;
int hp;
void showStatus()
{
cout << name << "血量: " << hp << endl;
}
};
class Warrior : public Character
{
public:
void attack()
{
cout << name << "攻擊!" << endl;
}
};
int main()
{
Warrior w;
w.name = "小A";
w.hp = 100;
w.showStatus();
w.attack();
return 0;
}
📌 同一個介面,可以有不同的實作方式
#include <iostream>
using namespace std;
class Character
{
public:
virtual void attack()
{
cout << "角色->攻擊!" << endl;
}
};
class Warrior : public Character
{
public:
void attack() override
{
cout << "勇者->揮劍!" << endl;
}
};
class Mage : public Character
{
public:
void attack() override
{
cout << "法師->火球術!" << endl;
}
};
int main()
{
Character *c1 = new Warrior();
Character *c2 = new Mage();
c1->attack();
c2->attack();
delete c1;
delete c2;
return 0;
}
📌 override → 標明為重寫函數
📌 繼承 → 讓子類別共享父類別的屬性與方法
避免重複程式碼
📌 多型 → 讓不同的子類別能各自定義行為
即使它們共享同一個介面